// -*- Mode: C++ -*-
#ifndef TRACK_H
#define TRACK_H

#include <vector>
#include <string>

class Pattern;
class SongItem;

class Track {
public:
     Track();
     ~Track();

     const std::string &name();
     void setName(const std::string &name);
     void addPattern(Pattern *pPattern);
     void removePattern(Pattern *pPattern);
     void removePatternAt(int i);
     Pattern *patternAt(int i);
     int patternCount();
     void setPatternCount(int count);

     void addSongItem(SongItem *pSongPattern);
     void removeSongItem(SongItem *pSongItem);
     void removeSongItemAt(int i);
     SongItem *songItemAt(int i);
     int songItemCount();
     void setSongItemCount(int count);

     // used by player to turn off last note
     int oldNote();
     void setOldNote(int oldNote);

private:
     std::string m_name;
     std::vector<Pattern *> m_patterns;
     std::vector<SongItem *> m_songItems;
     int m_oldNote;
};

#endif
